###函数

#定义和调用函数 
def add(num1,num2):
    return num1 + num2
result = add(1989,0)
print(result)

#函数的默认参数
def greet(name = "Sherlock"):
    print(f"Hello,{name}!")
greet('Taylor')
greet()

#可变参数*args:用于接收任意数量的位置参数，打包成一个元组
def add(*args):
    return sum(*args)
result = add((1,2,3,4,5))
print(result)

#可变参数**kwargs:用于接收任意数量的关键字参数，打包成一个字典
def info(**kwargs):
    print("**********")
    for k,v in kwargs.items():
        print(f"{k}:{v}")
    print("**********")
info(name="Ming",age=18,sex="male")

#文档字符串
def getEven(list):
    """
    getEven函数接受一个参数list，类型为列表
    返回由list中所有偶数构成的新列表
    如果lsit的长度为0，则返回空列表
    """
    if(len(list) == 0):
        return []
    newList = []
    for n in list:
        if(n%2==0):
            newList.append(n)
    return newList

list1 = getEven([1,2,3,4,5])
list2 = getEven([])
print(getEven.__doc__)
print(list1)
print(list2)

#匿名函数
square = lambda x:x**2
print(square(5))